This invention relates to apparatus and methods for data storage in a computerized network or system. More particularly, the present invention relates to instantaneously updating data on storage devices without interrupting use of the data.
In a computerized data storage system, a common situation involves the use of relatively large files, volumes or databases that are accessed by a relatively large number of users within an enterprise or across the World Wide Web (the Web). For example, a computerized product sales system, an airline reservation system or a popular Web site, among others, requires a large database of information that must be current and immediately accessible by the users (e.g. salespeople, customers, etc.). It is not acceptable in such situations for the users to access incorrect or out-of-date information. Therefore, the data must occasionally be updated. (e.g. to account for price changes, flight schedule changes, Web page changes, etc.). However, it is also unacceptable for the users to access data that has been only partially updated, so the updates must appear to occur instantaneously.
One technique for performing xe2x80x9cinstantaneousxe2x80x9d data updating is to use a volume mirroring process, as illustrated in the storage system 100 shown in FIG. 1. The data is copied from an original, or xe2x80x9cbase,xe2x80x9d volume 102 to a mirrored volume 104 in a different location in a storage array 106, or other storage device. The updates are made to the mirrored volume 104 while servers 108 continue to send normal I/O (input/output) access requests to the base volume 102 to be satisfied by the non-updated data. When the updating is complete, the servers 108 are redirected to the mirrored volume 104 to use as a new base volume for normal I/O""s. Upon redirecting the servers 108 and the I/O""s, the sudden redirecting makes it appear as if the data was updated instantaneously.
Another technique for performing instantaneous data updating uses a volume snapshot process. xe2x80x9cSnapshotsxe2x80x9d are commonly used to quickly make a point-in-time image of the base volume so that the state of the data in the base volume at the time when the snapshot is formed can be preserved. Typically, data blocks in the base volume are not copied to the snapshot volume unless new data modifies or replaces the preexisting data blocks in the base volume. Unchanged data blocks stay in the base volume. Thus, the preexisting data for the entire base volume is preserved without having to make a complete copy of the base volume, as in the mirroring process. For performing the instantaneous data updating, the updates are made to the snapshot volume, while the base volume continues to receive normal I/O""s from the connected servers. After the snapshot volume is updated, the servers are redirected to the snapshot volume.
Another technique for performing instantaneous data updating utilizing a snapshot volume is illustrated in the first aforementioned patent application. Generally, after the snapshot volume is formed from the base volume, the servers are redirected to the snapshot volume for normal I/O""s. The updates are then made to the base volume, while the snapshot volume satisfies the I/O access requests. After the base volume is updated, the servers are redirected back to the base volume and the snapshot volume can be deleted.
Each of these techniques includes overhead and complexity that affects the efficiency of the instantaneous updating process. The technique that involves volume mirroring suffers from having to use a lot of additional storage space and using valuable processing time to make a complete copy of the base volume. All of the techniques require redirection of the server""s I/O requests, which takes time to perform. In fact, the last of the techniques described above requires two redirections of the I/O requests.
It is with respect to these and other background considerations that the present invention has evolved.
The present invention utilizes snapshot techniques to quickly perform instantaneous data updating within a storage device, or storage array, without redirecting the servers, clients or other devices, that send the I/O access requests to the storage device. After forming the snapshot volume from the base volume, the updates are made to the snapshot volume, preferably while the base volume continues to respond to normal I/O access requests from the servers or clients. After the snapshot volume has been updated, a conventional xe2x80x9crollbackxe2x80x9d procedure is performed, which writes the data in the snapshot volume to the base volume.
The update to the base volume appears to be instantaneous because normal I/O access requests received during the rollback procedure are preferably satisfied from either the base volume or the snapshot volume, depending on which volume has the desired data. Thus, the rollback and the normal I/O access requests are processed concurrently. In this manner, the servers are never redirected, but are always sending the I/O access requests to the base volume. It is the base volume, a proxy for the base volume or other command routing software operating on the storage device, rather than the servers, that determines when to use the snapshot volume to satisfy the I/O access requests.
A more complete appreciation of the present invention and its scope, and the manner in which it achieves the above noted improvements, can be obtained by reference to the following detailed description of presently preferred embodiments of the invention taken in connection with the accompanying drawings, which are briefly summarized below, and the appended claims.